## Check that we can dump an offloading binary directly.
# RUN: yaml2obj %S/Inputs/binary.yaml -o %t.bin
# RUN: llvm-objdump --offloading %t.bin | FileCheck %s --match-full-lines --strict-whitespace --implicit-check-not={{.}}

## Check that we can dump an offloading binary inside of an ELF section.
# RUN: yaml2obj %s -o %t -DTYPE=ET_EXEC
# RUN: yaml2obj %s -o %t.so -DTYPE=ET_DYN
# RUN: yaml2obj %s -o %t.o -DTYPE=ET_REL
# RUN: llvm-objcopy --update-section .llvm.offloading=%t.bin %t
# RUN: llvm-objcopy --update-section .llvm.offloading=%t.bin %t.so
# RUN: llvm-objcopy --update-section .llvm.offloading=%t.bin %t.o
# RUN: llvm-objdump --offloading %t | FileCheck %s --check-prefixes=CHECK,ELF --match-full-lines --strict-whitespace --implicit-check-not={{.}}
# RUN: llvm-objdump --offloading %t.so | FileCheck %s --check-prefixes=CHECK,ELF --match-full-lines --strict-whitespace --implicit-check-not={{.}}
# RUN: llvm-objdump --offloading %t.o | FileCheck %s --check-prefixes=CHECK,ELF --match-full-lines --strict-whitespace --implicit-check-not={{.}}

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            [[TYPE]]
Sections:
  - Name:            .llvm.offloading
    Type:            SHT_LLVM_OFFLOADING
    Flags:           [ SHF_EXCLUDE ]
    AddressAlign:    0x0000000000000008

#        ELF:{{.*}}file format elf64-unknown
#  ELF-EMPTY:
#      CHECK:OFFLOADING IMAGE [0]:
# CHECK-NEXT:kind            llvm ir
# CHECK-NEXT:arch            gfx908
# CHECK-NEXT:triple          amdgcn-amd-amdhsa
# CHECK-NEXT:producer        openmp
# CHECK-EMPTY:
# CHECK-NEXT:OFFLOADING IMAGE [1]:
# CHECK-NEXT:kind            llvm ir
# CHECK-NEXT:arch            gfx90a
# CHECK-NEXT:triple          amdgcn-amd-amdhsa
# CHECK-NEXT:producer        openmp
# CHECK-EMPTY:
# CHECK-NEXT:OFFLOADING IMAGE [2]:
# CHECK-NEXT:kind            cubin
# CHECK-NEXT:arch            sm_52
# CHECK-NEXT:triple          nvptx64-nvidia-cuda
# CHECK-NEXT:producer        openmp
# CHECK-EMPTY:
# CHECK-NEXT:OFFLOADING IMAGE [3]:
# CHECK-NEXT:kind            <none>
# CHECK-NEXT:arch            sm_70
# CHECK-NEXT:triple          nvptx64-nvidia-cuda
# CHECK-NEXT:producer        none
